/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BeansGerenciaveis;

import DAO.Conexao;
import DAO.IdiomaDao;
import bean.Idioma;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author jorge
 */
@ManagedBean
@SessionScoped
public class IdiomaBean implements Serializable{

    /**
     * Creates a new instance of IdiomaBean
     */
    
    public IdiomaBean()
    {
        this.idiomaDao = new IdiomaDao();
        this.idioma = new Idioma();
        
    }
    
    public void novoIdioma()
    {
        this.idioma = new Idioma();
        this.carregarIdiomas();
    }

    public IdiomaDao getIdiomaDao() {
        return idiomaDao;
    }

    public void setIdiomaDao(IdiomaDao idiomaDao) {
        this.idiomaDao = idiomaDao;
    }

    public Idioma getIdioma() {
        return idioma;
    }

    public void setIdioma(Idioma idioma) {
        this.idioma = idioma;
    }

    public void setIdiomas(DataModel<Idioma> idiomas) {
        this.idiomas = idiomas;
    }

    public PreparedStatement getPs() {
        return ps;
    }

    public void setPs(PreparedStatement ps) {
        this.ps = ps;
    }

    public boolean isSucesso() {
        return sucesso;
    }

    public void setSucesso(boolean sucesso) {
        this.sucesso = sucesso;
    }

    public Conexao getConexao() {
        return conexao;
    }

    public void setConexao(Conexao conexao) {
        this.conexao = conexao;
    }
    
     public List<Idioma> getListaIdiomas() {
        if(listaIdiomas == null){
            this.carregarIdiomas();
        }
         return listaIdiomas;
    }

    public void setListaIdiomas(List<Idioma> listaIdiomas) {
        this.listaIdiomas = listaIdiomas;
    }
    
    public List<Idioma> listarIdiomas(){
        listaIdiomas = idiomaDao.listarIdioma();
        return listaIdiomas;
    }
    
    
    
     public String cadastroIdioma()
    {
        String resultado = "/cadastros/acaoErro";
        
        idiomaDao = new IdiomaDao();
        
        System.out.println("BeanGerenciavel - Idioma: "+ idioma.getIdioma());
      
        
        sucesso = idiomaDao.cadastrarIdioma(idioma);
        
        if(sucesso)
        {
            this.novoIdioma();
            return "/cadastros/acaoSucesso";
        }
        
        return resultado;
    }
    
    public void selecionar()
    {
        idioma = idiomas.getRowData();
    }

    public DataModel<Idioma> getIdiomas() {
        if(idiomas == null){
            this.carregarIdiomas();
        }
        
        return idiomas;
    }
    
    public String removerIdiomas() {
        String resultado = "/cadastros/acaoErro";
        idiomaDao = new IdiomaDao();
        sucesso = idiomaDao.removerIdioma(idioma);

        if (sucesso) {
            this.carregarIdiomas();
            return "/cadastros/acaoSucesso";
        }

        return resultado;
    }
    
    public String editarIdioma()
    {
        String resultado = "/cadastros/acaoErro";
        
        idiomaDao = new IdiomaDao();
        System.out.println(idioma.getId());
        System.out.println(idioma.getIdioma());
       
        sucesso = idiomaDao.alterarIdioma(idioma);
        
        if(sucesso)
        {
            resultado = "/cadastros/acaoSucesso";
        }
        
        return resultado;
    }
    
    public void carregarIdiomas(){
        idiomaDao = new IdiomaDao();
        listaIdiomas = idiomaDao.listarIdioma();
        idiomas = new ListDataModel<Idioma>(listaIdiomas);
    }
    
    private IdiomaDao idiomaDao;
    private Idioma idioma;
    private DataModel<Idioma> idiomas;
    private List<Idioma> listaIdiomas;
    private PreparedStatement ps;
    private boolean sucesso = false;
    private Conexao conexao;
}
